package com.guyu.plugin.satoken.service;


import com.guyu.plugin.satoken.context.LoginUser;
import jakarta.servlet.http.HttpServletRequest;

import java.util.List;

public interface LoginUserService {
    /**
     * 多账号体系下所属的账号体系标识，非多账号体系无需关注此值
     */
    String getLoginType();

    /**
     * 根据请求信息查询用户
     */
    LoginUser getLoginUser(HttpServletRequest request);

    /**
     * 获取指定 token 对应的账号信息，如果未登录，则返回 null
     */
    LoginUser getLoginUser(String tokenValue);

    /**
     * 根据用户id获取用户信息
     */
    LoginUser getUserById(Object loginId);

    /**
     * 根据用户id获取权限集合
     */
    List<String> getPermissionList(Object loginId);

    /**
     * 根据用户id获取角色码集合
     */
    List<String> getRoleList(Object loginId);


}
